/*
 * Copyright (C), 2014-2016, org.esaydev
 * FileName: Qcode.java
 * Author:   jian
 * Date:     2016年3月24日 
 */
package org.easydev.wechat.client.dto.qcode;

import org.easydev.wechat.annotation.RequestRef;
import org.easydev.wechat.client.dto.base.BaseParam;

import com.alibaba.fastjson.annotation.JSONField;

/**
 * <Description> 创建二维码ticket<br>
 * 用户扫描带场景值二维码时，可能推送以下两种事件：<br>
 * 如果用户还未关注公众号，则用户可以关注公众号，关注后微信会将带场景值关注事件推送给开发者。<br>
 * 如果用户已经关注公众号，在用户扫描后会自动进入会话，微信也会将带场景值扫描事件推送给开发者。<br>
 * 
 * @author jian<br>
 */
@RequestRef("qcode_create")
public class QcodeCreate extends BaseParam {

    /**
     * 该二维码有效时间，以秒为单位。 最大不超过2592000（即30天），此字段如果不填，则默认有效期为30秒。
     */
    @JSONField(name = "expire_seconds")
    private String expireSeconds = "2592000";

    /**
     * 二维码类型，QR_SCENE为临时,QR_LIMIT_SCENE为永久,QR_LIMIT_STR_SCENE为永久的字符串参数值
     */
    @JSONField(name = "action_name")
    private String actionName = "QR_SCENE";

    /**
     * 二维码详细信息
     */
    @JSONField(name = "action_info")
    private String actionInfo;

    /**
     * 场景值ID，临时二维码时为32位非0整型，永久二维码时最大值为100000（目前参数只支持1--100000）
     */
    @JSONField(name = "scene_id")
    private String sceneId;

    /**
     * 场景值ID（字符串形式的ID），字符串类型，长度限制为1到64，仅永久二维码支持此字段
     */
    @JSONField(name = "scene_str")
    private String sceneStr;

    /**
     * get expireSeconds
     * 
     * @return Returns the expireSeconds.<br>
     */
    public String getExpireSeconds() {
        return expireSeconds;
    }

    /**
     * set expireSeconds
     * 
     * @param expireSeconds The expireSeconds to set. <br>
     */
    public void setExpireSeconds(String expireSeconds) {
        this.expireSeconds = expireSeconds;
    }

    /**
     * get actionName
     * 
     * @return Returns the actionName.<br>
     */
    public String getActionName() {
        return actionName;
    }

    /**
     * set actionName
     * 
     * @param actionName The actionName to set. <br>
     */
    public void setActionName(String actionName) {
        this.actionName = actionName;
    }

    /**
     * get actionInfo
     * 
     * @return Returns the actionInfo.<br>
     */
    public String getActionInfo() {
        return actionInfo;
    }

    /**
     * set actionInfo
     * 
     * @param actionInfo The actionInfo to set. <br>
     */
    public void setActionInfo(String actionInfo) {
        this.actionInfo = actionInfo;
    }

    /**
     * get sceneId
     * 
     * @return Returns the sceneId.<br>
     */
    public String getSceneId() {
        return sceneId;
    }

    /**
     * set sceneId
     * 
     * @param sceneId The sceneId to set. <br>
     */
    public void setSceneId(String sceneId) {
        this.sceneId = sceneId;
    }

    /**
     * get sceneStr
     * 
     * @return Returns the sceneStr.<br>
     */
    public String getSceneStr() {
        return sceneStr;
    }

    /**
     * set sceneStr
     * 
     * @param sceneStr The sceneStr to set. <br>
     */
    public void setSceneStr(String sceneStr) {
        this.sceneStr = sceneStr;
    }

}
